#ifndef __FACTION_MANAGER_H__
#define __FACTION_MANAGER_H__

class FactionManager:public manager<Faction,FactionId>,public singleton<FactionManager>
{
public:
	FactionManager();
	virtual ~FactionManager();

	void GetFactionFromDataServer();
	Faction* CreateFromFactionInfo(FactionInfo& info);
	virtual Faction* Add(FactionId id,FactionInfo& info);
	virtual bool Remove(FactionId id);
	bool HasFaction(std::string name);
public:
	//std::map<Int32,FactionInfo > m_mapListFaction;
	std::vector<FactionInfo*> m_vectorRank;
	Int32 m_nFactionVersion;
};
#endif
